www.gusucode.com > VC 串口通讯_数据库存取例子-源码程序 > VC 串口通讯_数据库存取例子-源码程序/code/Modem3/Modem3.cpp
//Download by http://www.NewXing.com // Modem3.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "Modem3.h" #include "Modem3Dlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CModem3App BEGIN_MESSAGE_MAP(CModem3App, CWinApp) //{{AFX_MSG_MAP(CModem3App) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CModem3App construction CModem3App::CModem3App() { // TODO: add construction code here, // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CModem3App object CModem3App theApp; ///////////////////////////////////////////////////////////////////////////// // CModem3App initialization BOOL CModem3App::InitInstance() { m_hInstance=::CreateMutex(NULL,FALSE,UNIQUE_NAME); if(GetLastError()==ERROR_ALREADY_EXISTS) { AfxMessageBox("一个实例已在运行,本副本自动关闭"); return FALSE; } AfxEnableControlContainer(); /****ADO********************************/ AfxOleInit();///初始化COM库 ::CoInitialize(NULL); ////////////连接数据库////////////// HRESULT hr; try { hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr)) { hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db10.mdb","","",adModeUnknown);///连接数据库 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; } } } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息 return FALSE; } // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following SetDialogBkColor (RGB (220, 220, 220), RGB ( 0 ,0 , 0 ) ); // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif CModem3Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } int CModem3App::ExitInstance() { // TODO: Add your specialized code here and/or call the base class if(m_pConnection->State) m_pConnection->Close(); ///如果已经打开了连接则关闭它 CloseHandle(m_hInstance); ::CoUninitialize(); return CWinApp::ExitInstance(); }